<?php

require_once(BaseConfig::LoadClass('contrib/tcpdf/tcpdf.php'));

class PDFDoc {
  /**
   * Variable que genera el documento
   * 
   * @var TCPDF
   */
  var $oTCPDF;
  
  var $__intUltimoTamanioUsado;
  var $__strUltimoEstiloUsado ;
  var $__strUltimaFuenteUsada;
  
  var $__intBordesPrueba;
  
  function PDFDoc($strOrientacion = "P", $strPageFormat = "A4") {
    $this->oTCPDF = new TCPDF ($strOrientacion, PDF_UNIT, $strPageFormat, true, 'UTF-8', false);
    $this->oTCPDF->SetCreator (PDF_CREATOR    );
    $this->oTCPDF->SetAuthor  ('ANTARTICA'    );
    $this->oTCPDF->SetTitle   ('Documento PDF');
    $this->oTCPDF->SetSubject (''             );
    $this->oTCPDF->SetKeywords('PDF'          );
    
    $this->oTCPDF->setPrintHeader(false);
    $this->oTCPDF->SetFillColor(255);
    
    $this->__intBordesPrueba = 0;
    
    $this->__intUltimoTamanioUsado = 8;
    $this->__strUltimoEstiloUsado  = "";
    $this->__strUltimaFuenteUsada  = "helvetica";
    
    $this->oTCPDF->SetFont($this->__strUltimaFuenteUsada, $this->__strUltimoEstiloUsado, $this->__intUltimoTamanioUsado);
  }
  
  function CreateNewPage() {
    die("Funcion " . __METHOD__ . " se tiene que sobrecargar");
  }
  
  function DoRender() {
    die("Funcion " . __METHOD__ . " se tiene que sobrecargar");
  }
  
  function Guardar($strNombreArchivo = "", $strTipoGuardado = "I") {
    $this->oTCPDF->Output($strNombreArchivo, $strTipoGuardado);
  }
  
  /**
   * Ingresa un texto a un PDF
   * 
   * @param int    $intX       Posicion X
   * @param int    $intY       Posicion Y
   * @param int    $intW       Ancho
   * @param int    $intH       Alto
   * @param string $strTexto   Texto a imprimir
   * @param string $strAlign   Alineacion del texto
   * @param int    $intTamanio Tamaño de la letra. Por default es el ultimo usado
   * @param string $strEstilo  Estilo de la letra (P.Ej, "B" para Bold). Por defecto es el ultimo
   * @param string $strFuente  Fuente de la letra (P. Ej. "helvetica"). Por defecto es la ultima usada
   */
  function PonerTexto($intX, $intY, $intW, $intH, $strTexto = "", $strAlign = "", $intTamanio = -1, $strEstilo = "AJALE", $strFuente = "JALEA") {
    if($intTamanio == -1     ) $intTamanio = $this->__intUltimoTamanioUsado;
    if($strEstilo  == "AJALE") $strEstilo  = $this->__strUltimoEstiloUsado ;
    if($strFuente  == "JALEA") $strFuente  = $this->__strUltimaFuenteUsada ;
    
    if(
      ($this->__intUltimoTamanioUsado != $intTamanio) ||
      ($this->__strUltimoEstiloUsado  != $strEstilo ) ||
      ($this->__strUltimaFuenteUsada  != $strFuente ) 
    ) {
      $this->__intUltimoTamanioUsado = $intTamanio;
      $this->__strUltimoEstiloUsado  = $strEstilo ;
      $this->__strUltimaFuenteUsada  = $strFuente ;
      $this->oTCPDF->SetFont($this->__strUltimaFuenteUsada, $this->__strUltimoEstiloUsado, $this->__intUltimoTamanioUsado);
    }
    
    $this->oTCPDF->MultiCell($intW, $intH, $strTexto, $this->__intBordesPrueba, $strAlign, 1, 0, $intX, $intY);
  }
}

?>
